#pragma once
#include "Celula.h"

class Mundo
{
private:
	Celula **mapa;
	int n_linhas, n_colunas, id_mundo, pessoasCounter, idososCounter, jovensCounter, mosquitosCounter, temp_infj, temp_infi, temp_imun;
	int lastiter, currentiter, min_pessoas;
	string NomeMundo;
public:
	Mundo(string NomeMundo, int n_linhas,int n_colunas, int id_mundo);
	Mundo(const Mundo & m);
	~Mundo(void);
	int getMinPessoas();
	void setMinPessoas(int i);
	void setLastiter(int i);
	void setCurrentiter(int i);
	void setPessoasCounter(int i);
	void setJovensCounter(int i);
	void setIdososCounter(int i);
	void setMosquitosCounter(int i);
	void IncPessoasCounter();
	void IncIdososCounter();
	void IncJovensCounter();
	void IncMosquitosCounter();
	void setN_linhas(int n_linhas);
	void setN_colunas(int n_colunas);
	void setId(int id);
	void setTempInfJovens(int temp_infj);
	void setTempInfIdosos(int temp_infi);
	void setTempImun(int temp_imun);
	void setNomeMundo(string NomeMundo);
	void setMapa(Celula** m);
	void LimparMundo();
	void LimparMortos();
	int NascimentoMosquitos(Mosquito *mosnovo);
	void MoveIdosos();
	void MoveJovens();

	void MoveMosquitos();

	int getLastiter();

	int getCurrentiter();


	int get_PessoasCounter();
	int get_IdososCounter();
	int get_JovensCounter();
	int get_MosquitosCounter();
	int getN_linhas();
	int getN_colunas();
	int getId();
	int getTempInfJovens();
	int getTempInfIdosos();
	int getTempImun();
	string getNomeMundo();
	Celula** getMapa();
	Mundo & operator =(const Mundo &ob);
	//funcoes
	void addPessoa(int linha, int coluna, Pessoa& p);
	void addMosquito(int linha, int coluna, Mosquito& mos);
	void replaceTerreno(int linha, int coluna, Terreno& t);
	void modificaVariaveis();
	void Infeta();

};

